package com.example.j280_webproject.userConsole.service;

import com.example.j280_webproject.userConsole.jdbc.BaseJDBC;
import com.example.j280_webproject.userConsole.jdbc.UserJDBC;
import org.json.JSONObject;
import java.sql.Connection;
import java.sql.SQLException;

public class RegisterService {
    /**
     * 调用userJDBC.checkUsername检查用户名是否存在，如果存在则不可再注册；不存在则可以注册，
     *
     * @param username     用户名
     * @return             返回一个JSONObject对象
     */
    public JSONObject checkUsername(String username)  {
        Connection connection = BaseJDBC.createConnection();
        UserJDBC userJDBC = new UserJDBC();
        JSONObject jsonObject = new JSONObject();
        try {
            int count = userJDBC.checkUsername(connection, username);
            if (count == 0){                                           // count == 0为true则表示此用户名不存在可以注册，否则此用户名已存在，不可以再使用
                jsonObject.put("code",200);
                jsonObject.put("msg","恭喜您此用户名可以注册!");
            }
            else {
                jsonObject.put("code",505);
                jsonObject.put("msg","此用户名已存在，不可使用！");
            }
        } catch (SQLException e) {
            e.printStackTrace();
            jsonObject.put("code",404);
            jsonObject.put("msg","系统繁忙，请稍后再试！");
        }
        return jsonObject;
    }

    /**
     * 调用userJDBC.registerUser方法将用户输入的username和password写入数据库用户信息表中完成注册
     *
     * @param username      用户名
     * @param password      用户密码
     * @return              返回一个JSONObject对象
     */
    public JSONObject registerUser(String username, String password)  {
        Connection connection = BaseJDBC.createConnection();
        UserJDBC userJDBC = new UserJDBC();
        JSONObject jsonObject = new JSONObject();
        try {
            userJDBC.registerUser(connection,username,password);
            jsonObject.put("code",200);
            jsonObject.put("msg","恭喜您注册成功！");
        } catch (SQLException throwables) {
            jsonObject.put("code",506);
            jsonObject.put("msg","注册失败！");
        }
        return jsonObject;
    }
}
